/*     */ package com.zimbra.cs.index;
/*     */ 
/*     */ import com.google.common.base.Objects;
/*     */ import com.google.common.base.Objects.ToStringHelper;
/*     */ import com.zimbra.common.service.ServiceException;
/*     */ import com.zimbra.cs.mailbox.Conversation;
/*     */ import com.zimbra.cs.mailbox.MailItem;
/*     */ import com.zimbra.cs.mailbox.Mailbox;
/*     */ import java.util.Collection;
/*     */ import java.util.Iterator;
/*     */ import java.util.LinkedHashMap;
/*     */ import java.util.Map;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public final class ConversationHit
/*     */   extends ZimbraHit
/*     */ {
/*     */   private final int conversationId;
/*     */   private Conversation conversation;
/*  44 */   private Map<Long, MessageHit> messageHits = new LinkedHashMap();
/*     */   
/*     */   ConversationHit(ZimbraQueryResultsImpl results, Mailbox mbx, int convId, Object sortKey) {
/*  47 */     super(results, mbx, sortKey);
/*  48 */     this.conversationId = convId;
/*     */   }
/*     */   
/*     */   public int getConversationId()
/*     */   {
/*  53 */     return getId();
/*     */   }
/*     */   
/*     */   public void addMessageHit(MessageHit hit) {
/*  57 */     this.messageHits.put(Long.valueOf(hit.getItemId()), hit);
/*     */   }
/*     */   
/*     */   public Collection<MessageHit> getMessageHits() {
/*  61 */     return this.messageHits.values();
/*     */   }
/*     */   
/*     */   public int getNumMessageHits() {
/*  65 */     return getMessageHits().size();
/*     */   }
/*     */   
/*     */   public int getNumMessages() throws ServiceException {
/*  69 */     return getConversation().getMessageCount();
/*     */   }
/*     */   
/*     */   public MessageHit getMessageHit(Long mailboxBlobId) {
/*  73 */     return (MessageHit)this.messageHits.get(mailboxBlobId);
/*     */   }
/*     */   
/*     */   public MessageHit getFirstMessageHit() {
/*  77 */     Iterator<MessageHit> iter = getMessageHits().iterator();
/*  78 */     return iter.hasNext() ? (MessageHit)iter.next() : null;
/*     */   }
/*     */   
/*     */   public int getItemId()
/*     */   {
/*  83 */     return this.conversationId;
/*     */   }
/*     */   
/*     */   void setItem(MailItem item)
/*     */   {
/*  88 */     this.conversation = ((Conversation)item);
/*     */   }
/*     */   
/*     */   boolean itemIsLoaded()
/*     */   {
/*  93 */     return this.conversation != null;
/*     */   }
/*     */   
/*     */   public int getId() {
/*  97 */     return this.conversationId;
/*     */   }
/*     */   
/*     */   public String toString()
/*     */   {
/* 102 */     return Objects.toStringHelper(this).add("item", getId()).addValue(super.toString()).toString();
/*     */   }
/*     */   
/*     */   public String getName() throws ServiceException
/*     */   {
/* 107 */     if (this.cachedName == null) {
/* 108 */       MessageHit mh = getFirstMessageHit();
/* 109 */       this.cachedName = (mh == null ? "" : mh.getName());
/*     */     }
/* 111 */     return this.cachedName;
/*     */   }
/*     */   
/*     */   public MailItem getMailItem() throws ServiceException
/*     */   {
/* 116 */     return getConversation();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public Conversation getConversation()
/*     */     throws ServiceException
/*     */   {
/* 127 */     if (this.conversation == null) {
/* 128 */       this.conversation = getMailbox().getConversationById(null, this.conversationId);
/*     */     }
/* 130 */     return this.conversation;
/*     */   }
/*     */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/cs/index/ConversationHit.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */